using NotifyCenter.Projects;
using NotifyCenter.Projects.Dtos;

public interface IProjectService
{
    #region Project APIs
    public Task<ProjectPageResponse> GetListAsync(ProjectPageRequest input, CancellationToken cancellationToken = default);
    public Task<ProjectDto> CreateAsync(ProjectCreateDto input, CancellationToken cancellationToken = default);
    public Task<ProjectDto> UpdateAsync(long porjectId, ProjectUpdateDto input, CancellationToken cancellationToken = default);
    public Task<ProjectDto> EnableAsync(long projectId, bool enable, CancellationToken cancellationToken = default);
    #endregion

    #region Notification rule APIs
    public Task<List<NotificationRule>> GetAllNotificationsAsync(long projectId, CancellationToken cancellationToken = default);
    public Task<List<NotificationRule>> AddNotificationsAsync(long projectId, NotificationRuleRequest notification, CancellationToken cancellationToken = default);
    public Task<List<NotificationRule>> UpdateNotificationsAsync(long projectId, long notificationId, NotificationRuleRequest notification, CancellationToken cancellationToken = default);
    #endregion
}
